/* eslint valid-jsdoc: "off" */

'use strict';

/**
 * @param {Egg.EggAppInfo} appInfo app info
 */
module.exports = appInfo => {
  /**
   * built-in config
   * @type {Egg.EggAppConfig}
   **/
  const config = exports = {
    // cluster:{
    //   listen:{
    //     path:"",
    //     port:5000,
    //     hostname:"127.0.0.1"
    //   }
    // },


    sequelize:{
      dialect: 'mysql', // 支持 mysql, mariadb, postgres, mssql等数据库
      database: 'zipblog_top', // 数据库名称
      host: '127.0.0.1',    // 服务主机地址
      port: 3306,   // 端口
      username: 'root', // 用户名
      password: '123456', // 密码
      //delegate: 'myModel', // 【可选】加载所有的模型models到 `app[delegate]` and `ctx[delegate]`对象中，进行委托, 默认是model
      //baseDir: 'my_model', // 【可选】加载 `app/${baseDir}`文件夹下的所有js文件作为models,默认为 `model`
      //exclude: 'index.js', // 【可选】加载所有模型models时，忽略 `app/${baseDir}/index.js` 文件，支持文件路径和数组
    },


    mysql : {
      client:{
        host:"127.0.0.1",
        port:"3306",
        user:"root",
        password:"123456",
        database:"zipblog_top"
      },
      app:true,
      agent:false
    },
    // io:{
    //   init:{},
    //   namespace:{
    //     '/':{
    //       connectionMiddleware:['connection'],
    //       packetMiddleware:['packet']
    //     },
    //     '/example':{
    //       connectionMiddleware:[],
    //       packetMiddleware:[]
    //     }
    //   }
    // },
    // redis:{
    //   client:{
    //     host:"127.0.0.1",
    //     port:"6379",
    //     password:"123456",
    //     db:0
    //   }
    // },
    view:{
      defaultViewEngine: 'nunjucks',
      mapping: {
        '.tpl': 'nunjucks',
      }
    },
    gzip:{
      threshold:1024
    },
    security:{
      csrf:{
        enable:false,
        ignoreJSON:true
      },
      domainWhiteList:[]
    },
    cors: {
      origin: '*',
      allowMethods: 'GET,HEAD,PUT,POST,DELETE,PATCH'
    },
  };

  // use for cookie sign key, should change to your own and keep security
  config.keys = appInfo.name + '_1563262323987_4286';

  // add your middleware config here
  config.middleware = ['gzip','demo01'];

  // add your user config here
  const userConfig = {
    // myAppName: 'egg',
    host: 'http://127.0.0.1:5000',
  };

  return {
    ...config,
    ...userConfig,
  };
};
